package com.sgolub.commanndsonline.helpers;

import java.util.Iterator;
import java.util.List;

import com.sgolub.commanndsonline.domain.entity.UserOrder;
import com.sgolub.commanndsonline.domain.entity.UserOrderDetail;
import com.sgolub.commanndsonline.domain.sec.SecUser;

public class MailSender {

	public static void submitOrder(UserOrder order, SecUser user, List<UserOrderDetail> list){
		String theme;
		String message;
		
		theme = "Order Nr." +  order.getOrderNr() + " din " + order.getOrderDate() + 
				" de la "+ user.getName() + " " + user.getCompany(); 
		message = theme + "\n";
		
		message = message + "Ati primit comanda pentru spatii de publicitate  de la " 
		+ user.getName() + " " + user.getCompany() + " cu urmatorul continut :" + "\n" + 
				"Получен заказ на рекламные площади от "
		+ user.getName() + " " + user.getCompany() + " следующего содержания :" + "\n";
		
		Iterator<UserOrderDetail> listIterator = list.iterator();
		while(listIterator.hasNext()) {
			UserOrderDetail element = listIterator.next();
			
			String reservationCondition = " fara bronare/rezervare.";
			if (element.getReservationType() == 1) reservationCondition = " cu bronare.";
			if (element.getReservationType() == 2) reservationCondition = " cu contract.";

			
			message = message + "Numar de inventar :" + element.getAdvertisingRegistry().getInventarNr();
			message = message + " de la " + element.getBeginCommandDate() + " pana la " + element.getEndCommandDate();
			message = message + reservationCondition + "\n";
			
		}
		
		GoogleMailTLSHelper sender = new GoogleMailTLSHelper();
		sender.Send(theme, message, user.getManager().getEmail());
	}
	
	public static void rejectOrder(UserOrder order, SecUser user, List<UserOrderDetail> list){
		String theme;
		String message;
		
		theme = "Order Nr." +  order.getOrderNr() + " din " + order.getOrderDate() + 
				" de la "+ user.getName() + " " + user.getCompany(); 
		message = "\n";
		
		message = message + "Comanda Dvs cu Nr." +  order.getOrderNr() + " din " + order.getOrderDate() + 
				" nu a fost acceptata. Pentru explicatii contactati  pe managerul personal " +
				user.getManager().getName() + " prin intermediul postei electronice " +
				user.getManager().getEmail() + "\n" + 
				"Ваш заказ "  +  order.getOrderNr() + " от " + order.getOrderDate() + 
				" не может быть выполнен. Для выснения причин свяжитесь с персональным менеджером "+
						user.getManager().getName() + " по электронной почте " +
						user.getManager().getEmail() + "\n";
		
		GoogleMailTLSHelper sender = new GoogleMailTLSHelper();
		sender.Send(theme, message, user.getEmail());
	}
	
	public static void approveOrder(UserOrder order, SecUser user, List<UserOrderDetail> list){
		String theme;
		String message;
		
		theme = "Order Nr." +  order.getOrderNr() + " din " + order.getOrderDate() + 
				" de la "+ user.getName() + " " + user.getCompany(); 
		message = "\n";
		
		message = message + "Comanda Dvs cu Nr." +  order.getOrderNr() + " din " + order.getOrderDate() + 
				" a fost acceptata. Pentru detalii contactati  pe managerul personal " +
				user.getManager().getName() + " prin intermediul postei electronice " +
				user.getManager().getEmail() + "\n" + 
				"Ваш заказ "  +  order.getOrderNr() + " от " + order.getOrderDate() + 
				" принят к выполнению. Для выснения деталей свяжитесь с персональным менеджером "+
						user.getManager().getName() + " по электронной почте " +
						user.getManager().getEmail() + "\n";
		
		Iterator<UserOrderDetail> listIterator = list.iterator();
		while(listIterator.hasNext()) {
			UserOrderDetail element = listIterator.next();
			
			String reservationCondition = " fara bronare/rezervare.";
			if (element.getReservationType() == 1) reservationCondition = " cu bronare.";
			if (element.getReservationType() == 2) reservationCondition = " cu contract.";

			
			message = message + "Numar de inventar :" + element.getAdvertisingRegistry().getInventarNr();
			message = message + " de la " + element.getBeginCommandDate() + " pana la " + element.getEndCommandDate();
			message = message + reservationCondition + "\n";
			
		}
		
		GoogleMailTLSHelper sender = new GoogleMailTLSHelper();
		sender.Send(theme, message, user.getEmail());
	}	
	
	public static void newUserRegistered(SecUser user){
		String themeAdmin = "Новый пользователь зарегистрировался в системе.";
		String themeUser = "Регистрация в системе Он-лайн заказов STANDART SRL.";
		String headerForAdmin = "Новый пользователь зарегистрировался в системе. \n";
		String headerForUser = "Вы успешно зарегистрировались в системе. \n";
		String footerForAdmin = "Для активации пользователя ему надо назначить менеджера. \n";
		String footerForUser = "В настоящее время ваша учётная запись не активна. Ждите письма с подтверждением активации и назначением персонального менеджера. \n";
		String message = "";
		message += "Имя/Фамилия :" + 	user.getName() + "\n";
		message += "Фирма :" + 		user.getCompany() + "\n";
		message += "Телефон :" + 		user.getTelefon() + "\n";
		message += "Логин :" + 		user.getUsername() + "\n";
		message += "Емайл :" + 		user.getEmail() + "\n";
		//message += "Дата регистрации" + user.get
		
		GoogleMailTLSHelper sender = new GoogleMailTLSHelper();
		sender.Send(themeUser,headerForUser + message + footerForUser, user.getEmail());
		sender.Send(themeAdmin,headerForAdmin + message + footerForAdmin, "");
		
	}
	
	public static void newUserRegisterationApproved(SecUser user){

		String themeManager = "Подтверждение регистрации в системе Он-лайн заказов STANDART SRL";
		String themeUser = "Подтверждение регистрации в системе Он-лайн заказов STANDART SRL";
		
		String headerForManager = "Вам назначен новый клиент. \n";
		String headerForUser 	= "Ваша учётная запись активирована. " +
				"Теперь вы можете войти в систему. Ваш персональный менеджер : " + user.getManager().getName() + "\n " +
						"Связатся можно по электронной почте:" + user.getManager().getEmail() + "\n" ;
		
		String footerForManager = "Заказы этого клиента будут распределятся на Вас. \n";
		String footerForUser 	= 
				"Все размещённые заказы будут обрабатыватся вашим менеджером. \n";
		String message = "";
		message += "Имя/Фамилия :" + 	user.getName() + "\n";
		message += "Фирма :" + 		user.getCompany() + "\n";
		message += "Телефон :" + 		user.getTelefon() + "\n";
		message += "Логин :" + 		user.getUsername() + "\n";
		message += "Емайл :" + 		user.getEmail() + "\n";
		//message += "Дата регистрации" + user.get
		
		GoogleMailTLSHelper sender = new GoogleMailTLSHelper();
		sender.Send(themeManager,headerForManager + message + footerForManager, 
				user.getManager().getEmail());
		sender.Send(themeUser,headerForUser + message + "Пароль :" 
				+ user.getPassword() + "\n" + footerForUser, user.getEmail());
		
	}	
	
	
	
	
}
